In a computer controlled by a microprogram, the following three processes are repeatedly performed one after another:
(1) fetching a machine language instruction from a main memory; PA1 (2) producing a first address in a microprogram routine in accordance with the machine language instruction; and PA1 (3) executing the microprogram routine. However, it is necessary to execute many microprogram routines if the machine language instructions are complicated and have a sophisticated function so that it is required to employ a complex circuit and it also takes a lot of time for executing the above-mentioned process (2). Furthermore, it is necessary to produce many first addresses for many microprogram routines from a single machine language instruction.
Although there are a number of methods of producing a first address of a microprogram routine from a machine language instruction, a programmable logic array, referred to as PLA hereinafter, is often and normally used in which first addresses of microprogram routines are made to correspond to the bit pattern of a machine language instruction. In case of producing a plurality of first addresses of microprogram routines with respect to one machine language instruction a method of dividing the PLA into a plurality of regions, and giving information, which designates a region, from a specific field of a microinstruction is commonly adopted.
However, such a method has the following drawbacks: Namely, the type and the function of a machine language instruction influences on the type of microinstructions, and it is impossible to obtain a first address of a microprogram routine to be executed next as long as a microinstruction having information on the designation of a region has not been executed.